-- @Author: 作者QQ381990860
-- @Date:   2021-11-05 10:34:34
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-23 06:59:07


local 帮派类 = class(窗口逻辑)
local bw = require("gge包围盒")(0,0,40,22)
local insert = table.insert
local box = 引擎.画矩形
local tp,zts,zts1

local bps1 = {"帮派名称","创 始 人","现任帮主","帮派编号","掌握区域","当前内政","同盟帮派"}
local bps2 = {"成员数量","帮派资金","安 定 度","人 气 度","繁 荣 度","规    模","敌对帮派"}
local bps3 = {"帮派行动力","敌对帮派编号"}

function 帮派类:初始化(根)
	self.ID = 140
	self.x = 200+(全局游戏宽度-800)/2
	self.y = 70
	self.xx = 0
	self.yy = 0
	self.注释 = "帮派类"
	self.可视 = false
	self.鼠标 = false
	self.焦点 = false
	self.可移动 = true
	local 资源 = 根.资源
	local 按钮 = 根._按钮
	local 自适应 = 根._自适应
	self.资源组 = {
	[1] = 自适应.创建(0,1,405,421,3,9),--背景
	[2] = 按钮.创建(自适应.创建(18,4,16,16,4,3),0,0,4,true,true),
	[3] = 按钮.创建(自适应.创建(32,4,10,13,4,3),0,0,4,true,true),
	[4] = 按钮.创建(自适应.创建(31,4,10,13,4,3),0,0,4,true,true),
	[5] = 按钮.创建(自适应.创建(11,4,75,20,1,3),0,0,4,true,true,"更改职务"),
	[6] = 按钮.创建(自适应.创建(11,4,75,20,1,3),0,0,4,true,true,"申请名单"),
	[7] = 按钮.创建(自适应.创建(11,4,75,20,1,3),0,0,4,true,true,"请离帮派"),
	[8] = 按钮.创建(自适应.创建(11,4,75,20,1,3),0,0,4,true,true,"脱离帮派"),

	[10] = 自适应.创建(8,1,170,165,3,9),
	[11] = 自适应.创建(3,1,100,18,1,3),
	}

	for n=2,8 do
		self.资源组[n]:绑定窗口_(140)
	end
	for n=5,8 do
		self.资源组[n]:置偏移(0,-1)
	end

	self.超丰富文本 = 根._丰富文本(142,127,根.字体表.普通字体)
	self.超丰富文本:添加元素("h", 0xFF000000)
	self.窗口时间 = 0
	tp = 根
	zts = tp.字体表.普通字体
	zts1 = tp.字体表.描边字体
end


function 帮派类:打开(数据)
	if  self.可视 then
		self.超丰富文本:清空()
		self.可视 = false
		self.显示序列 = 1
		self.选中编号 = 0
	else
	if  self.x > 全局游戏宽度 then
		self.x = 200+(全局游戏宽度-800)/2
    end
		insert(tp.窗口_,self)
		self.数据 = 数据
		self.可视 = true
	self.显示序列 = 1
	self.选中编号 = 0
	self.超丰富文本:清空()
	self.超丰富文本:添加文本("#h/" .. self.数据.宗旨)
	self.成员显示 = {}
	for n, v in pairs(self.数据.成员名单) do
		if self.数据.成员名单[n].职务 == "帮主" then
			self.成员显示[#self.成员显示 + 1] = table.loadstring(table.tostring(self.数据.成员名单[n]))
			self.数据.成员名单[n].显示状态 = 1
		end
	end
	for n, v in pairs(self.数据.成员名单) do
		if self.数据.成员名单[n].职务 == "副帮主" then
			self.成员显示[#self.成员显示 + 1] = table.loadstring(table.tostring(self.数据.成员名单[n]))
			self.数据.成员名单[n].显示状态 = 1
		end
	end
	for n, v in pairs(self.数据.成员名单) do
		if self.数据.成员名单[n].职务 == "左护法" then
			self.成员显示[#self.成员显示 + 1] = table.loadstring(table.tostring(self.数据.成员名单[n]))
			self.数据.成员名单[n].显示状态 = 1
		end
	end
	for n, v in pairs(self.数据.成员名单) do
		if self.数据.成员名单[n].职务 == "右护法" then
			self.成员显示[#self.成员显示 + 1] = table.loadstring(table.tostring(self.数据.成员名单[n]))
			self.数据.成员名单[n].显示状态 = 1
		end
	end
	for n, v in pairs(self.数据.成员名单) do
		if self.数据.成员名单[n].职务 == "长老" then
			self.成员显示[#self.成员显示 + 1] = table.loadstring(table.tostring(self.数据.成员名单[n]))
			self.数据.成员名单[n].显示状态 = 1
		end
	end
	for n, v in pairs(self.数据.成员名单) do
		if self.数据.成员名单[n].在线 and self.数据.成员名单[n].显示状态 == nil then
			self.成员显示[#self.成员显示 + 1] = table.loadstring(table.tostring(self.数据.成员名单[n]))
			self.数据.成员名单[n].显示状态 = 1
		end
	end
	for n, v in pairs(self.数据.成员名单) do
		if self.数据.成员名单[n].在线 == false and self.数据.成员名单[n].显示状态 == nil then
			self.成员显示[#self.成员显示 + 1] = table.loadstring(table.tostring(self.数据.成员名单[n]))
			self.数据.成员名单[n].显示状态 = 1
		end
	end
	for n = 1, #self.成员显示, 1 do
		self.成员显示[n].包围盒 = require("gge包围盒")(150, 192, 140, 15)
		--self.成员显示[n].包围盒:更新宽高(140, 15)
	end

		tp.运行时间 = tp.运行时间 + 3
		self.窗口时间 = tp.运行时间
		self.可视 = true
	end
end

function 帮派类:显示(dt,x,y)
	self.资源组[2]:更新(x,y)
	self.资源组[4]:更新(x,y)
	self.资源组[3]:更新(x,y)
	self.资源组[5]:更新(x,y)
	self.资源组[6]:更新(x,y)
	self.资源组[7]:更新(x,y)
	self.资源组[8]:更新(x,y)
	self.焦点=false
	if self.资源组[2]:事件判断() then
		self:打开()
	elseif self.资源组[4]:事件判断() then
		if self.显示序列 <= 1 then
			self.显示序列 = 1
		else
			self.显示序列 = self.显示序列 - 1
		end
	elseif self.资源组[3]:事件判断() then
		if self.显示序列 + 5 > #self.成员显示 then
			tp.提示:写入("#y/没有更多的帮派成员了")
		else
			self.显示序列 = self.显示序列 + 1
		end
	elseif self.资源组[6]:事件判断() then
		客户端:发送数据(6, 65, 13, "5")
	elseif self.资源组[8]:事件判断() then
		客户端:发送数据(6, 69, 13, "5")
	elseif self.资源组[7]:事件判断() then
		if self.选中编号 == 0 then
			tp.提示:写入("#y/请先选中一个帮派成员")
        else
        	客户端:发送数据(self.成员显示[self.选中编号].id, 70, 13, "5")
		end

	elseif self.资源组[5]:事件判断() then
		if self.选中编号 == 0 then
			tp.提示:写入("#y/请先选中一个帮派成员")
         else
         	客户端:发送数据(self.成员显示[self.选中编号].id, 71, 13, "5")
		end
	end

	self.资源组[1]:显示(self.x,self.y)
	self.资源组[2]:显示(self.x+self.资源组[1].宽度-20,self.y+3)
	tp.窗口标题背景_:显示(self.x+self.资源组[1].宽度/2-73,self.y)
	zts1:显示(self.x+self.资源组[1].宽度/2-30,self.y+1,"帮派信息")

		zts:置颜色(0xFFFFFFFF)
		for i=0,6 do
			self.资源组[11]:置宽高(100,18)
			self.资源组[11]:显示(self.x+85,self.y+30+i*23)
			zts:显示(self.x+15,self.y+32+i*23,bps1[i+1])
			self.资源组[11]:显示(self.x+275,self.y+30+i*23)
			zts:显示(self.x+210,self.y+32+i*23,bps2[i+1])
		end

		for i=0,1 do
			zts:显示(self.x+15+i*65*3,self.y+192,bps3[i+1])
		end

			self.资源组[11]:置宽高(85,18)
			self.资源组[11]:显示(self.x+100,self.y+191)
			self.资源组[11]:置宽高(70,18)
			self.资源组[11]:显示(self.x+305,self.y+191)

		for i=0,1 do
			self.资源组[10]:显示(self.x+20+i*190,self.y+215)
		end

	self.资源组[4]:显示(self.x+179, self.y+239)
	self.资源组[3]:显示(self.x+179, self.y+365)

	self.资源组[5]:显示(self.x+15, self.y+387,true)
	self.资源组[6]:显示(self.x+115, self.y+387,true)
	self.资源组[7]:显示(self.x+215, self.y+387,true)
	self.资源组[8]:显示(self.x+315, self.y+387,true)

	zts:置颜色(0xFFFFFFFF)
	zts:显示(self.x+80,self.y+220,"帮派成员                  帮派宗旨")
	zts:置颜色(0xFF000000)
	zts:显示(self.x+94, self.y+33, self.数据.名称)
	zts:显示(self.x+94, self.y+55, self.数据.创始人.名称)
	zts:显示(self.x+94, self.y+78, self.数据.现任帮主.名称)
	zts:显示(self.x+94, self.y+101, self.数据.编号)
	zts:显示(self.x+94, self.y+123, self.数据.掌控区域.名称)
	zts:显示(self.x+94, self.y+147, self.数据.当前内政.名称)
	zts:显示(self.x+94, self.y+170, self.数据.同盟.名称)
	zts:显示(self.x+110, self.y+193, self.数据.行动力)

	zts:显示(self.x+284, self.y+33, self.数据.当前人数 .. "/" .. self.数据.人数上限)
	zts:显示(self.x+284, self.y+55, self.数据.资金)
	zts:显示(self.x+284, self.y+78, self.数据.安定)
	zts:显示(self.x+284, self.y+101, self.数据.人气)
	zts:显示(self.x+284, self.y+123, self.数据.繁荣)
	zts:显示(self.x+284, self.y+147, self.数据.规模)
	zts:显示(self.x+284, self.y+170, self.数据.敌对.名称)
	zts:显示(self.x+314, self.y+193, self.数据.敌对.编号)

	self.超丰富文本:显示(self.x+217, self.y+243)
	self.显示位置 = 0
	for n = 1, #self.成员显示, 1 do
		if self.显示序列 <= n and n <= self.显示序列 + 5 then
			self.显示位置 = n - self.显示序列 + 1
			 if self.选中编号 == n then
              box(self.x+25,self.y +245 + self.显示位置 * 20 ,self.x + 165,self.y +245 + self.显示位置 * 20 - 20,-9670988)
			 end

			if self.成员显示[n].在线 then
				zts:置颜色(0xFF000000)
				zts:显示(self.x+29, self.y+247 + self.显示位置 * 20 - 20, "[" .. self.成员显示[n].职务 .. "]")
				zts:显示(self.x+89, self.y+247 + self.显示位置 * 20 - 20, self.成员显示[n].名称)
			else
				zts:置颜色(0xFF000000)
				zts:显示(self.x+29, self.y+247 + self.显示位置 * 20 - 20, "[" .. self.成员显示[n].职务 .. "]")
				zts:显示(self.x+89, self.y+247 + self.显示位置 * 20 - 20, self.成员显示[n].名称)
			end

			self.成员显示[n].包围盒:置坐标(self.x+29, self.y+246 + self.显示位置 * 20 - 20)

			if self.成员显示[n].包围盒:检查点(x,y) and 引擎.鼠标弹起(0) then
				self.选中编号 = n
			end
		end
	end
end

return 帮派类
